/*
  学习目标：索引签名类型
  语法：在对象结构中，[xxx: 键类型]: 值类型
  使用场景：在不确定键名是什么的情况下，如React中的透传

  注意：
    1. 通常 💥索引签名类型和any要配合起来使用
    2. 不要滥用，真正需要的时候才去使用
*/

interface IAuthRouteProps {
  path: string;
  component: any;

  // 代表：任意的键和类型
  [key: string]: any;
}

//  以前封装的鉴权路由
function AuthRoute(props: IAuthRouteProps) {
  // props是什么数据类型？
  const { path, component, ...restProps } = props;

  // 省略return的代码
  return null;
}

AuthRoute({ path: '/', component: 'div', aa: true, cc: '123132', dd: '21313' });
AuthRoute({ path: '/', component: 'div', bbb: true });
